home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / games / nhak_src.zip / INSTALL.UNI < prev    next >
Text File  |  1993-03-16  |  6KB  |  110 lines

  1. Instructions for installing NetHack 3.0 on a UNIX system
  2. ========================================================
  3.  
  4. 1.  Make sure all the NetHack files are in the appropriate directory structure.
  5.     You should have a main directory with subdirectories src, include, auxil,
  6.     amiga, mac, vms, and others.  If you do not follow this structure, the
  7.     Makefiles will not function properly.  All the UNIX .c files and the
  8.     source Makefile belong in src; all the .h files belong in include; other
  9.     assorted data files belong in auxil.  The UNIX version does not use any
  10.     files from the other directories, except possibly for random.c from
  11.     others, as explained in step 6.  (A more detailed explanation of the
  12.     directory structure may be found in Files, which should be in the top
  13.     directory.)
  14.  
  15. 2.  Your Makefiles may still have tags on the end of them.  Makefile.top should
  16.     become Makefile in the top directory, Makefile.src Makefile in the src
  17.     subdirectory, and Makefile.auxil Makefile in the auxil subdirectory.
  18.  
  19. 3.  Go to the include subdirectory and edit config.h according to the comments
  20.     to match your system and desired set of features.  Similarly edit
  21.     unixconf.h.
  22.  
  23. 4.  If you want to, look through system.h.  This file attempts to match the
  24.     types for system calls and library routines with various flavors of
  25.     operating systems.  Leaving this file alone is unlikely to cause worse
  26.     problems than lint errors, but it's worth checking if you get compile
  27.     errors, especially if you have an unusual system.
  28.  
  29. 5.  Go to the src subdirectory and look at the top of topten.c.  You may want
  30.     to change the definitions of PERSMAX and PERS_IS_UID here to get different
  31.     behavior from the high score list.
  32.  
  33. 6.  Edit the top section of the src Makefile.  (If you are doing a full
  34.     recompile, or if you got your files from someplace besides the official
  35.     distribution, type 'touch makedefs.c' to make sure certain files (onames.h,
  36.     pm.h) get remade instead of relying on the potentially troublesome
  37.     timestamps.)  If you elected to use the provided (BSD) random routines,
  38.     move or link random.c into the src subdirectory from others.  Then type
  39.     'make' in src and go get a cup of coffee or take a nap.  You should now
  40.     have created the game executable.
  41.  
  42. 7.  Go back to the main directory and edit that Makefile, explaining where you
  43.     want everything to be installed.  The Makefile assumes you want to run
  44.     NetHack setuid 'games' to cut down on possible tampering; it's fairly
  45.     straightforward to comment out the appropriate chmod if you don't want that,
  46.     or to change any of the rest of the procedure.  Also edit auxil/nethack.sh
  47.     at this point.  Type 'make spec_levs' from the main directory to set up
  48.     files for some of the special levels.  Then become root if necessary and
  49.     type 'make install'.  Everything should now be set.
  50.  
  51. Notes:
  52.  
  53. 1.  A number of systems, such as Xenix, support both the termcap and terminfo
  54.     terminal capability libraries.  Make sure that the TERMINFO definition in
  55.     config.h and the TERMLIB definition in the source Makefile correspond.
  56.     If spurious characters appear on the screen while kicking, zapping, etc.,
  57.     it is likely that you have linked the source to the wrong library or
  58.     mistakenly defined/undefined TERMINFO.  If your terminal library does not
  59.     provide suitable delays, NetHack will try to fake its own if you set the
  60.     nonull option.
  61.  
  62. 2.  Save files and bones files from previous versions will not work with
  63.     NetHack 3.0.  Don't bother trying to keep them.  Record (score) files
  64.     from before 3.0 patchlevel 7 will almost work, but you need to make one
  65.     change manually to them:  At the end of each line is a word or phrase
  66.     specifying what killed the player.  Change the string to start with the
  67.     words "killed by", "killed by a", or "killed by an" (whichever is
  68.     appropriate).  If the death was petrification, it should read "petrified
  69.     by" instead of "killed by".  Don't change "starvation", "quit", "escaped",
  70.     or "ascended".
  71.  
  72. 3.  If you insisted on doing the final installation by hand, you probably
  73.     forgot to make a save directory.  If you don't go back and do this, you
  74.     won't be able to save games.
  75.  
  76. 4.  To install an update of this version of NetHack after changing something,
  77.     type 'make update' from the main directory.  If you created the new
  78.     version yourself, it should be safe to use 'make update' as long as you
  79.     did not add, delete, or reorder monsters or objects and you did not change
  80.     the format of saved level files.  If you did any of these things, you
  81.     should also remove any saved games and bones levels.  (Trying to use such
  82.     files often produces amusing but useless confusions on the game's part.)
  83.  
  84. 5.  Xenix/286's lex generates a faulty lexical analyser from lev_comp.l.
  85.     The beta-release of flex 2.1 (avaliable from uunet, osu-cis,
  86.     prep.ai.mit.edu, etc.) can be used to generate the lexer.
  87.     The only change to flex is to change "#define yyleng (yy_cp - yy_bp)"
  88.     to "#define yyleng (int)(yy_cp - yy_bp)" in flex.skel.
  89.     Flex is not needed with Xenix/386, as its lex generates a proper lexical
  90.     analyser.  [Xenix instructions by J.T. Conklin]
  91.  
  92. 6.  If you get unexplained deaths by trickery, you are probably running
  93.     NetHack on a bunch of workstations, but you have overlooked the NETWORK
  94.     definition in unixconf.h that is necessary in that configuration.
  95.  
  96. 7.  If you are trying to compile NetHack on an AT&T 3B that is running an
  97.     OS earlier than SVR3, you are likely to have problems with overflowing
  98.     symbol tables.  This can be worked around by editing the source Makefile
  99.     to make the Sys.3B2 target work more like the SysV-AT target, adding
  100.     -DDUMB to CFLAGS and DUMB.Setup to the Sys.3B2 dependency line.  The
  101.     compiler provided with later versions of the OS has a large enough
  102.     symbol table that it does not need this workaround.
  103.  
  104. 8.  If NetHack seems to compile fine, starts up, allows you to pick a
  105.     character, and then either hangs or gets a segmentation fault, you
  106.     should try changing the schar and uchar definitions in config.h to
  107.     short ints.  This problem is known to occur on the AT&T 3B series,
  108.     Silicon Graphics Irises, and IBM PC/RT's running AIX, and may occur
  109.     on other computers as well.
  110.